In communications networks, there may be a challenge to obtain good performance and capacity for a given communications protocol, its parameters and the physical environment in which the communications network is deployed.
For example, in digital communication the data to be communicated from a sender to a receiver can be divided into smaller data segments which are sent in packets. These data segments are provided with information of how the data protocol used for transferring the data from the sender to the receiver should map the packets and, in some cases, analyze if the data content of the packet is correct or not. This information can typically be predicted or known by the receiver. For example when using the Internet Protocol (IP), IP-packet headers are needed for each device along the way from the sender to the receiver to route the packet. In some communications networks, such as in Long Term Evolution (LTE) radio access networks, a served wireless device will typically never receive an IP-packet with the wrong IP-address (which is exploited by so-called header-compression).
Polar codes, as presented in “Channel polarization: A method for constructing capacity-achieving codes for symmetric binary-input memoryless channels,” IEEE Trans. Inform. Theory, vol. 55, pp. 3051-3073, 2009, are capacity achieving codes, have an explicit construction (i.e., not randomly generated), and have an efficient encoding and decoding algorithm. Apart from the capacity achieving property, which is valid when code-lengths tend to infinity, they have shown good performance for shorter code-lengths.
One issue with existing mechanisms for decoding polar codes lies in the successive decoding (SD) procedure which follows the bit-order of the polar codes. Decoding of polar codes is prone to error propagation and hence, an error made early in the successive decoding procedure will not be corrected, but will instead propagate all the way to the end of the decoding. This will result in a decoding error. Additionally it is more likely to make an error early in the procedure than at the end, see FIG. 2. FIG. 2 shows an example of the amount of information for a bit with index i (for i=1, 2, . . . N where N is the total number of binary digits, and N=1024 in the example) can carry, given that all the previous binary digits 1, 2, . . . , i−1 are known, i.e., where the polar code decoding order is followed.
According to US2015/0026543 A1, this problem is mitigated by expanding a fixed list of binary digits (indices) that are most likely to be erroneous. However, this list is not dependent on the instantaneous channel realization but rather on the channel distribution and therefore will be mismatched in some cases. According to “List decoding of polar codes” by I. Tal and A Vardy, arXiv: 1206.0050, 31 May 2012, a procedure that splits the paths in the binary tree is proposed. The technique keeps track of the most probable paths currently known and disregards the rest. However, the probability measures are not exact and if the measured (evaluated) probability values are close to each other (but still not same and therefore orderable) may result in picking wrong paths due to the errors in the probabilities.
Hence, there is still a need for improved mechanisms for decoding data having been encoded using polar codes.